print_som Subroutine

public subroutine print_som(kohonen_map, unit_)

Print function for self_organizing_map

Type Bound

self_organizing_map

Arguments

Type IntentOptional Attributes Name
class(self_organizing_map) :: kohonen_map
integer, intent(inout), optional :: unit_

Variables

Type Visibility Attributes Name Initial
integer, public :: ix
integer, public :: iy
integer, public :: iz
integer, public :: unit1

Source Code

    subroutine print_som(kohonen_map,unit_)
!========================================================================================
!!   Print function for self_organizing_map 
        class(self_organizing_map) :: kohonen_map
!!
        integer,intent(inout),optional :: unit_
!!
        integer :: ix,iy,iz,unit1
!
        if(.not. present(unit_)) then 
            unit1=6;
        else
            unit1=unit_;
        endif
        write(unit1,*) 'SOM: Results';
        write(unit1,*)
        call kohonen_map%parameters%print(unit1);
        ! write(unit1,*) 'After'
        write(unit1,*)
        write(unit1,*) 'SOM: Grid nodes';
        write(unit1,*)
        do iz=1,size(kohonen_map%grid,3)
            do iy=1,size(kohonen_map%grid,2);
                do ix=1,size(kohonen_map%grid,1);
                    call kohonen_map%grid(ix,iy,iz)%print(unit1);
                enddo
            enddo!iy
        enddo!ix
        write(unit1,*)
        write(unit1,*) 'SOM: Hit count';
        write(unit1,*)
        write(unit1,*) 'Pattern Numbers';
        do iz=1,size(kohonen_map%number_patterns,3);
            do ix=1,size(kohonen_map%number_patterns,1);
                write(unit1,'(100I5)') (kohonen_map%number_patterns(ix,iy,iz),iy=1,&
                   size(kohonen_map%number_patterns,2));
            enddo
        enddo
        write(unit1,*)
        write(*,*) 'SOM: Pattern index'
        write(unit1,*)
        write(unit1,*)
        write(unit1,*) 'Pattern #, ix   ,iy';

        do ix=1,size(kohonen_map%cells_index,1);
            write(unit1,'(100I5)') ix, (kohonen_map%cells_index(ix,iy),&
                iy=1,size(kohonen_map%cells_index,2));
        enddo
!
    end subroutine print_som